The present invention relates to spread spectrum communications, and more particularly, to the generation of optimal code sequences used to perform spreading and de-spreading functions in a code division multiple access communication.
A direct sequence spread spectrum (DSSS) system is a wide-band system in which the entire frequency bandwidth of the system is available to each user all the time. A DSSS system employs a spreading signal that expands or xe2x80x9cspreadsxe2x80x9d the bandwidth of the transmitted signal much more than it is required for the transmission of information symbols. The spreading signal is usually called a spreading or scrambling code or sequence. The term spreading code is generally adopted for this description. Different users in a DSSS system are distinguished using the different spreading codes. This is why DSSS systems are also referred to as Direct Sequencexe2x80x94Code Division Multiple Access (DS-CDMA) systems. In general, spreading codes are usually bi-phase, with elements belonging to the set {+1,xe2x88x921}, or polyphase, with elements belonging to the set of complex numbers corresponding to equidistant points on the unit circle in the complex plane. For example, quadriphase corresponds to four points of unit length from the origin.
In general, there is a trade-off between increasing the number of spreading codes and decreasing interference. The number of spreading codes used to distinguish mobile station users, particularly on the uplink direction from a mobile station to a base station, should be as large as possible. This is because more spreading codes provide more radio channels so that more mobile stations can communicate at the same time in the same geographic area. But increasing capacity in a CDMA system comes at a costxe2x80x94interference which reduces the quality of communication for all users. However, it is desirable that the amount of correlation between any two of the spreading codes be reduced to minimize the interference between the mobile stations communicating using those codes. More formally, the maximum, periodic, cross-correlation between any two spreading codes should be as low as possible.
The periodic cross-correlation, also called even correlation, is equal to a correlation output under the assumption that the data modulation format does not change during the correlation operation. In practice, successive data modulation symbols have random rather than periodic values. Therefore, an odd correlation function better represents the correlation output when a data symbol of interfering signal changes during the correlation operation. While both the even and odd correlation functions should be evaluated to obtain an interference measure for any two spreading codes assigned to a pair of mobile stations to determine the degree of cross-correlation, odd cross-correlation is difficult to determine theoretically for a given set of spreading codes. Therefore, the even correlation function is used to compare different families or sets of spreading codes to determine an optimal family/set.
The present invention provides an optimal set of spreading codes for use for example in a wideband-CDMA (WCDMA) mobile radio communications system. Although this set of spreading codes may be employed in synchronized, downlink transmissions from the base station, it is particularly useful in the uplink direction from the mobile station to the base station where the different mobile stations are not mutually synchronized. The optimal spreading code family provides a large number of codes that also have low cross-correlation between spreading codes for all possible time shifts between the different mobile stations. In this way, the mobile communications system capacity is significantly increased while still providing satisfactory radio communications with minimum interference to/from the other mobile stations.
In a preferred embodiment, the optimal code family is the S(2) family of four-phase code sequences of length L=2mxe2x88x921, where m is an integer greater than or equal to 5. The codes in the S(2) family are generated by summing modulo-4 three component sequences including a first component quaternary sequence a(n), a second component binary sequence b(n), and a third component binary sequence c(n), where the binary sequences b(n) and c(n) are multiplied by two before summing. The size of the family, i.e., the number of quaternary spreading codes, is (L+2)(L+1)2, and the maximum cross-correlation between any two of the codes is 1+4{square root over ((L+1+L ))}. The three component sequences may be generated using corresponding linear feedback shift-register generators. The set of (L+2)(L+1)2 different S(2) sequences is obtained by combining the different component sequences produced by the different initial shift register states: (L+2) initial states for an a(n) sequence and (L+1) initial states for b(n) and for c(n) sequences.
As an example, the number of S(2) spreading codes having a length (L) of 255 chips is 16,842,752 with a maximum, absolute, even cross-correlation of 65. Over 16 million uplink spreading codes provides considerable system capacity. If one assumes that no more that 256 mobile stations will be served in a single base station sector, then 65, 792 code sets may be re-used in the mobile communications system. This large number of code sets provides considerable flexibility in network planning.
Although spreading codes from the S(2) family may be randomly selected and allocated to various users in a CDMA mobile communications system, a preferred example embodiment of the present invention allocates the spreading codes in accordance with a specific code allocation procedure that achieves more advantageous results compared with random code selection. Assuming the entire mobile communications system employs the S(2) family of codes, specific spreading code subsets of the S(2) family of codes are allocated to each base station (or base station sector). The spreading code subsets have the same cross correlation properties of the S(0) and/or S(1) families of codes and provide reduced interference for mobile stations operating in the same base station (or same base station sector) as compared to randomly selected codes from the S(2) family of codes.
Capacity is one important aspect of a communications system, but services are also very important. There are certain services provided in mobile communications systems like WCDMA cellular systems that may require or support more than one data rate. For variable rate and other services, it is desirable to provide spreading codes whose length may be expressed as an integer multiple of each spreading factor in the mobile communications system. The spreading factor corresponds to the number of chips used to spread a single data symbol. Relatively short spreading codes, whose code period covers one or more data symbols, are desirable in order to support low-complexity, multi-user detection at the CDMA radio base stations.
One way of implementing multiple data rates is to use those data rates which allow corresponding spreading factors (SF) to be expressed as SF(k)=L/2k, where L is the length of each spreading codes in the code family and k is a positive integer and varies in proportion to the data rate. Therefore, the spreading code length should be some power of two. Having the spreading code length expressible as an integer multiple of each possible spreading factor in the system significantly alleviates overall synchronization in the receiver making it independent of the data rate. In other words, if the spreading code period contains an integer number of data symbols, data frame and data synchronization in the receiver are derived automatically when the receiver despreading sequence is synchronized with the incoming signal. Otherwise, the data symbol position with respect to the (relatively small) spreading code period fluctuates over the time, i.e., it is different in consecutive spreading code periods. As a result, it is difficult to attach a single data synchronization signal to a spreading code period, and consequently, a separate circuit in addition to a code synchronization circuit must be employed to acquire and track data synchronization.
However, the length (L) of the codes in typical spreading code families is 2mxe2x88x921, like the S(2) spreading code family described above. For example, if m=8, the code length is 255. In order to obtain the advantages of optimal high capacity at minimal cross-correlation code interference as well as support the variable data rate applications, the present invention extends the length of each spreading code by a code symbol to make the spreading code length a power of 2. In a preferred example embodiment, an additional code symbol is added to the end of each spreading code. More specifically, the extended spreading code is obtained by adding another code symbol after L symbols of the original (non-extended) code of length L.
In one example embodiment, the added code symbol may be fixed, i.e., have the same value, for all spreading codes in the family. In other example embodiments, the added code symbol has the same value as the first chip in the original spreading code. In the case of quaternary spreading codes like those in the S(2) family, the additional spreading code symbol may have four possible values, i.e., 0, 1, 2, or 3. Preferably, the value of the additional spreading code symbol is selected to optimize the mutual cross-correlation between the extended spreading codes.